package vip.xiaonuo.client.modular.wxuser.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.stereotype.Service;
import vip.xiaonuo.client.modular.wxuser.entity.ClientUser;
import vip.xiaonuo.client.modular.wxuser.param.ClientUserAddParam;
import vip.xiaonuo.client.modular.wxuser.param.ClientUserFzBindParam;
import vip.xiaonuo.client.modular.wxuser.param.ClientUserLoginParam;
import vip.xiaonuo.client.modular.wxuser.param.WxMaLoginParam;
import vip.xiaonuo.client.modular.wxuser.param.WxQrCodeParam;

public interface ClientUserService extends IService<ClientUser> {

    String login(ClientUserLoginParam loginParam);

    void add(ClientUserAddParam addParam);

    ClientUser getUserInfo();

    /**
     * 微信小程序登录
     * @param wxMaLoginParam 小程序登录参数
     * @return 登录token
     */
    String wxMaLogin(WxMaLoginParam wxMaLoginParam);

    /**
     * 绑定分销商户账户
     * @param bindParam 绑定参数
     * @return 绑定结果
     */
    boolean bindFzUser(ClientUserFzBindParam bindParam);

    /**
     * 生成小程序码
     * @param wxQrCodeParam 小程序码参数
     * @return 小程序码图片base64编码字符串
     */
    String generateMaQrCode(WxQrCodeParam wxQrCodeParam);

    /**
     * 生成带底图小程序码
     * @param wxQrCodeParam 小程序码参数
     * @return 带底图小程序码图片base64编码字符串
     */
    String generateMaQrCode2(WxQrCodeParam wxQrCodeParam) throws Exception;

    String generateInvitationCode2(String wxQrCode) throws Exception;
}
